Hello, 我是 Weber,一位工程師,斜槓鼓手與行銷顧問。
每日一套件的第 25 天,請跟著我一起認識 Rails 開發好用的 30 個套件,建立出自己的常用套件庫吧!
首先,先祝台灣雙十國慶快樂!
真是想不到,默默的鐵人賽第 25 天了,讓我寫一點小心得。
寫鐵人賽這件事,我認為最大的好處,就是從一開始半強迫自己每天寫一篇文章。到現在,開始逐漸變成一種習慣,現在每天固定寫也開始寫出一種興趣,甚至開始有一些別的主題的想法。然後寫完再到處看一下其他高人的文章,每天吸收一點新知識。
而且鐵人賽對我來說,也是一種奇怪的訓練。因為他有時間壓力,每天一定要發文完成才能達標,沒得拖。
對我而言,拖稿的問題有兩種,一種是我被其他事物分散注意力了,而又沒有時間壓力,就變成"再補就好",我歷年來的部落格就有點類似這樣。
另外一種是創作上,我注意到我常在創作的中期會陷入一個完美主義,這在個人的攝影、音樂作品集,都有同樣的影子,有很多類似 "not good enough to publish" 的 murmur、無法超越之前的作品 或者 無法 fulfill 自己對於這畫布的定義等。
所以儘管我還是有點強迫症,但鐵人賽算是有點解開這個束縛,反正就先寫在說,這也無關創作,只是一個基礎的訓練跟內容的輸出。而且它無法再補就好,他一定要馬上立刻寫,內容好不好,再來調整了。
總之,這是一個好的訓練,也蠻有趣的。明年可以再參加。
以上廢話,回歸正題。
圖片取自在林邊
說到葡萄,最好吃的莫過於麝香葡萄了,最近還聽說了一種新吃法。
就是把麝香葡萄泡到氣泡水裡面,吃起來會帶有碳酸感喔!!!
???
Grape 是一個基於 Ruby 用來建構 RESTful 的 API 框架。尤其常被使用在開發 Web API、同時也具備了版本控制、參數驗證、認證等功能。雖然可以獨立運作,不過還是很常跟Rails 搭配使用,也有人暱稱說 Grape on Rails。
廢話不多說,直接玩一次。
起手式:
$ bundle add grape
接著在 config/application.rb
裡加入兩行,讓rails可以讀到等一下要寫的檔案:
config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]
如下:
class Application < Rails::Application
# ...
# Support grape API
config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app')]
# ...
end
先創造 api 的資料夾 mkdir app/api
然後做一個測試用的 api,裡面只寫了 ping pong 來測試 api,很常見的 api health check。
class Test < Grape::API
version 'v0', using: :path
format :json
desc "Ping Pong!"
get :ping do
{ data: "pong" }
end
end
在 config/routes.rb
中加入 api 的路徑。
將api 加入在 /api
下,這樣所有的 api 路徑都會從 /api
開始。
Rails.application.routes.draw do
# ...
mount Api::Test => '/api'
# ...
end
接著就可以開 rails server
囉!
可以使用工具,如 Postman 來測試您的 API,Postman 目前我也還用的不熟,這裡就不細講了。
可以使用工具如 Swagger 或 Grape Swagger 來產生文件。這個主題可以後面再提,哈哈
我們明天見!